package com.yt.product.server.utils;

import com.yt.product.models.dto.InsuranceProductDTO;
import com.yt.product.models.entity.InsuranceProduct;

/**
 * 保险产品 Entity 和 DTO 转换工具类
 */
public class InsuranceProductConverter {
    
    /**
     * 将 Entity 转换为 DTO
     * @param entity 保险产品实体
     * @return 保险产品 DTO
     */
    public static InsuranceProductDTO entityToDTO(InsuranceProduct entity) {
        if (entity == null) {
            return null;
        }
        
        InsuranceProductDTO dto = new InsuranceProductDTO();
        dto.setProductId(entity.getProductId());
        dto.setProductName(entity.getProductName());
        dto.setTypeAttrId(entity.getTypeAttrId());
        dto.setMinAmount(entity.getMinAmount());
        dto.setMaxAmount(entity.getMaxAmount());
        dto.setMinTerm(entity.getMinTerm());
        dto.setMaxTerm(entity.getMaxTerm());
        dto.setPayRatio(entity.getPayRatio());
        dto.setDescription(entity.getDescription());
        dto.setStatus(entity.getStatus());
        dto.setIsDelete(entity.getIsDelete());
        dto.setCreateTimeDB(entity.getCreateTime());
        dto.setUpdateTimeDB(entity.getUpdateTime());
        
        return dto;
    }
    
    /**
     * 将 DTO 转换为 Entity
     * @param dto 保险产品 DTO
     * @return 保险产品实体
     */
    public static InsuranceProduct dtoToEntity(InsuranceProductDTO dto) {
        if (dto == null) {
            return null;
        }
        
        InsuranceProduct entity = new InsuranceProduct();
        entity.setProductId(dto.getProductId());
        entity.setProductName(dto.getProductName());
        entity.setTypeAttrId(dto.getTypeAttrId());
        entity.setMinAmount(dto.getMinAmount());
        entity.setMaxAmount(dto.getMaxAmount());
        entity.setMinTerm(dto.getMinTerm());
        entity.setMaxTerm(dto.getMaxTerm());
        entity.setPayRatio(dto.getPayRatio());
        entity.setDescription(dto.getDescription());
        entity.setStatus(dto.getStatus());
        entity.setIsDelete(dto.getIsDelete());
        entity.setCreateTime(dto.getCreateTimeDB());
        entity.setUpdateTime(dto.getUpdateTimeDB());
        
        return entity;
    }
}